Many network services require high level of adaptation, self-organization, load balancing etc. For example in real time messaging, turn-based multiplayer games or other similar applications it is important that the messages are delivered promptly. As participants may join and leave the services as they wish, a robust and cost effective delivery of messages is a challenge. Messages need to be delivered to all participants in a service and each user can be active in multiple services. Delivering all messages to all parties is one method and sharing states (routing tables with address information) continuously is another method of delivering the messages. As the number of parties may be enormous, it is not efficient to deliver all messages to all parties. Sharing states may also bring considerable overhead to the messaging as the number of parties as well as their locations change.